// const { defineConfig } = require("@vue/cli-service");
// module.exports = defineConfig({
//   transpileDependencies: true,
// });

const path = require('path');
const webpack = require('webpack');
function resolve(dir) {
  return path.join(__dirname, dir)
}
// vue.config.js

/**
 * @type {import('@vue/cli-service').ProjectOptions}
 */
module.exports = {
  // 选项...
  pages: {
    index: {
      // page 的入口
      entry: `src/project/${process.env.VUE_APP_PROJECT}/main.js`,
    },
    // 当使用只有入口的字符串格式时，
    // 模板会被推导为 `public/subpage.html`
    // 并且如果找不到的话，就回退到 `public/index.html`。
    // 输出文件名会被推导为 `subpage.html`。
    // bbb: 'src/project/bbb/main.js'
  },
  lintOnSave: true, // 关闭代码检测
  // 配置css
  css: {
    loaderOptions: {
      css: {
        modules: {
          auto: () => false
        }
      },
      // 默认情况下 `sass` 选项会同时对 `sass` 和 `scss` 语法同时生效
      // 因为 `scss` 语法在内部也是由 sass-loader 处理的
      // 但是在配置 `prependData` 选项的时候
      // `scss` 语法会要求语句结尾必须有分号，`sass` 则要求必须没有分号
      // 在这种情况下，我们可以使用 `scss` 选项，对 `scss` 语法进行单独配置
      scss: {
        additionalData: `@import "~@/styles/${process.env.VUE_APP_PROJECT}/index.scss";`
      },
    }
  },
  // 配置webpack中的一些内容
  configureWebpack: (config) => {
    config.resolve = {
      extensions: ['.js', '.json', '.vue'], // 自动添加文件后缀名
      alias: { // 配置文件的别名
        "@": path.resolve(__dirname, './src'),
        "@c": path.resolve(__dirname, './src/components'),
        "~@": path.resolve(__dirname, './src/assets')
      }
    }
  },
  /* svg 相关配置 */
    /* svg 相关配置 */
    chainWebpack: config => {
        // const svgRule = config.module.rule('svg');
        // // 清空默认svg规则
        // svgRule.uses.clear();
        // //针对svg文件添加svg-sprite-loader规则
        // svgRule
        //     .test( /\.svg$/)
        //     .include.add(path.resolve(__dirname, './src/icon/svg'))// 配置icons的目录 
        //     .end()
        //     .use('svg-sprite-loader')
        //     .loader('svg-sprite-loader')
        //     .options({
        //          symbolId: 'icon-[name]'
        //     });
        config.module
              .rule('svg')
              .exclude.add(resolve('./src/icon/svg'))
              .end()
        config.module
              .rule('icons')
              .test(/\.svg$/)
              .include.add(resolve('./src/icon/svg'))
              .end()
              .use('svg-sprite-loader')
              .loader('svg-sprite-loader')
              .options({
                symbolId: 'icon-[name]'
              })
              .end()
}
  // chainWebpack: (config) => {
  //   config.module.rules.delete("svg"); // 重点: 删除默认配置中的svg
  //   config.module
  //     .rule('svg-sprite-loader').test(/\.svg$/)
  //     .include
  //     .add(resolve('./src/icon/svg')) // 处理svg目录
  //     .end()
  //     .use('svg-sprite-loader')
  //     .loader('svg-sprite-loader')
  //     .options({
  //       symbolId: 'icon-[name]'
  //     })
  //   // 清空默认svg规则
  //   // svgRule.uses.clear();
  //   // //针对svg文件添加svg-sprite-loader规则
  //   // svgRule
  //   //     .test( /\.svg$/)
  //   //     .use('svg-sprite-loader')
  //   //     .loader('svg-sprite-loader')
  //   //     .options({
  //   //         symbolId: 'icon-[name]'
  //   //     });
  // }
}